ad041d3b5ff96ed33ea22692035f02c21b461a68,h2o-algos/src/main/java/hex/tree/DTree.java,DecidedNode,bestCol,#UndecidedNode#DHistogram#,401

Before Change


        int col = u._scoreCols == null ? i : u._scoreCols[i];
        if( hs[col]==null || hs[col].nbins() <= 1 ) continue;
        findSplits[i] = new FindSplits(hs, col);
        H2O.submitTask(findSplits[i]);
      }
      for( int i=0; i<maxCols; i++ ) {
        if (findSplits[i]==null) continue;

After Change


        nbinsSum += hs[col].nbins();
      }
      // for small work loads, do a serial loop, otherwise, submit work to FJ thread pool
      final boolean isSmall = (nbinsSum <= 1024); //heuristic - 50 cols with 20 nbins, or 1 column with 1024 bins, etc.
      for( int i=0; i<maxCols; i++ ) {
        int col = u._scoreCols == null ? i : u._scoreCols[i];
        if( hs[col]==null || hs[col].nbins() <= 1 ) continue;
        findSplits[i] = new FindSplits(hs, col);
        if (isSmall) findSplits[i].compute2();
        else H2O.submitTask(findSplits[i]);
      }
      for( int i=0; i<maxCols; i++ ) {
        if (findSplits[i]==null) continue;